package com.eastfair.venuebooking.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.venuebooking.dto.QuotationDetailDTO;
import com.eastfair.venuebooking.dto.QuotationDetailQuery;
import com.eastfair.venuebooking.dto.SalesAnalysisDTO;
import com.eastfair.venuebooking.entity.QuotationDetail;
import com.eastfair.venuebooking.vo.QuotationDetailVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 报价书详情
 * </p>
 *
 * @author linan
 * @date 2022 -06-08
 */
public interface QuotationDetailService extends SuperService<QuotationDetail> {

    /**
     * 查询展会对应的所有展厅名称
     *
     * @param exhibitionId the exhibition id
     * @return space names by exhibition id
     */
    List<String> getSpaceNamesByExhibitionId(Long exhibitionId);

    /**
     * 查询报价书详情列表.
     *
     * @param query the query
     * @return the list
     */
    List<QuotationDetailVO> listQuotationDetailVOs(QuotationDetailQuery query);

    /**
     * 报价书id查询报价书详情列表.
     *
     * @param quotationId the query
     * @return the list
     */
    List<QuotationDetailVO> listQuotationDetailVOsByQuotationId(Long quotationId);

    /**
     * 批量保存报价书详情.
     *
     * @param list        the list
     * @param quotationId the quotation id
     * @return the boolean
     */
    boolean saveBatch(List<QuotationDetailDTO> list, Long quotationId);

    /**
     * 批量保存或更新报价书详情.
     *
     * @param list        the list
     * @param quotationId the quotation id
     * @return the boolean
     */
    boolean saveOrUpdateBatch(List<QuotationDetailDTO> list, Long quotationId);

    /**
     * 报价书ID批量删除报价书详情.
     *
     * @param quotationIds the quotation ids
     * @return the boolean
     */
    boolean removeByQuotationIds(List<Long> quotationIds);

    /**
     * 获取计价面积
     * @param salesAnalysisDTO
     * @return
     */
    Integer getSpaceLeaseStatisticsTotalData(SalesAnalysisDTO salesAnalysisDTO);
}
